<?php
// 安全安装完成处理脚本
// 此脚本用于完成安装过程，不再删除整个安装目录

// 设置脚本执行超时为120秒
set_time_limit(120);

echo "<html><head><meta charset='UTF-8'><title>安装完成处理...</title></head><body>";

echo "<h2 style='text-align: center; margin-top: 50px;'>正在完成安装，请稍候...</h2>";

echo "<div style='width: 500px; margin: 20px auto; text-align: left;'>";

/**
 * 清理不需要的安装文件，但保留核心文件
 * @param string $dir 目录路径
 * @return bool 是否清理成功
 */
function cleanInstallationFiles($dir) {
    // 检查目录是否存在
    if (!file_exists($dir)) {
        echo "<p>目录不存在：$dir</p>";
        return true;
    }
    
    // 要保留的核心文件
    $keepFiles = [
        'show_admin_info.php',  // 管理员信息显示页面
        'delete_install_dir.php' // 此脚本自身
    ];
    
    // 打开目录
    $handle = opendir($dir);
    if ($handle) {
        // 读取目录中的所有文件和子目录
        while (false !== ($item = readdir($handle))) {
            // 跳过.和..以及需要保留的文件
            if ($item != '.' && $item != '..' && !in_array($item, $keepFiles)) {
                $path = $dir . DIRECTORY_SEPARATOR . $item;
                
                // 如果是子目录，递归清理
                if (is_dir($path)) {
                    echo "<p>正在清理目录：$path</p>";
                    cleanInstallationFiles($path);
                    // 尝试删除空目录，但不报错
                    @rmdir($path);
                } else {
                    // 如果是文件，直接删除
                    echo "<p>正在清理文件：$path</p>";
                    @unlink($path);
                }
            }
        }
        // 关闭目录句柄
        closedir($handle);
    }
    
    return true;
}

// 获取install目录的绝对路径
$installDir = __DIR__;

// 创建安装锁文件（如果不存在）
$lockFilePath = dirname($installDir) . DIRECTORY_SEPARATOR . 'install.lock';
if (!file_exists($lockFilePath)) {
    file_put_contents($lockFilePath, 'System installed on ' . date('Y-m-d H:i:s'));
    if (function_exists('chmod')) {
        chmod($lockFilePath, 0644);
    }
    echo "<p style='color: green;'>已创建安装锁文件，防止重复安装</p>";
}

// 开始清理过程，只清理不需要的文件，保留核心文件
if (cleanInstallationFiles($installDir)) {
    echo "<p style='color: green; font-weight: bold;'>安装文件清理完成！</p>";
} else {
    echo "<p style='color: red; font-weight: bold;'>安装文件清理失败！</p>";
    echo "<p>请手动检查安装目录：$installDir</p>";
}

echo "</div>";

echo "<div style='text-align: center; margin-top: 30px;'>";
// 直接显示链接，不进行文件存在性检查，避免open_basedir警告
echo "<a href='../index.php' style='display: inline-block; padding: 10px 20px; background: #667eea; color: white; text-decoration: none; border-radius: 5px;'>访问系统首页</a>";
echo " <a href='../admin/' style='display: inline-block; padding: 10px 20px; background: #28a745; color: white; text-decoration: none; border-radius: 5px;'>进入后台管理</a>";

echo "</div>";
echo "</body></html>";

// 强制输出所有缓冲区内容
flush();
ob_flush();

// 等待3秒后自动跳转到首页，不进行文件存在性检查
echo "<script>setTimeout(function() { window.location.href = '../index.php'; }, 3000);</script>";
}
?>